package com.co.notaweb.bussines;

import java.util.List;

import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import com.co.notaweb.entities.Asignacion;
import com.co.notaweb.enums.EstadoEnum;

/**
 * @author PC
 * @version 1.0
 * @created 13-nov-2011 12:14:24
 */
@Stateless
@TransactionAttribute(TransactionAttributeType.MANDATORY)
public class AsignacionBussines implements IAsignacionBussinesLocal {
	@PersistenceContext(unitName = "notaweb")
	private EntityManager em;

	public AsignacionBussines() {

	}

	/**
	 * 
	 * @param docente
	 */
	public List<Asignacion> consultarAsignacionPorCursoDocenteMateria(
			long idCurso, long idDocente, long idMateria) {
		Query query = em
				.createNamedQuery("Asignacion.consultarAsignacionPorCursoDocenteMateria");
		query.setParameter("idCurso", idCurso);
		query.setParameter("idDocente", idDocente);
		query.setParameter("idMateria", idMateria);
		query.setParameter("estado", EstadoEnum.ACTIVO);
		return query.getResultList();
	}

	/**
	 * 
	 * @param asignacion
	 */
	public void create(Asignacion asignacion) {
		em.persist(asignacion);
	}

	/**
	 * 
	 * @param asignacion
	 */
	public void delete(Asignacion asignacion) {
		em.remove(asignacion);
	}

	/**
	 * 
	 * @param asignacion
	 */
	public void edit(Asignacion asignacion) {
		em.merge(asignacion);
	}

	/**
	 * 
	 * @param id
	 */
	public Asignacion find(long id) {
		return em.find(Asignacion.class, id);
	}

	public List<Asignacion> consultarAllAsignacion() {
		Query query = em.createNamedQuery("Asignacion.consultarAllAsignacion");
		query.setParameter("estado", EstadoEnum.ACTIVO);
		return query.getResultList();
	}

}